html, body {
  width: 100%;
  height: 100%;
  padding: 0;
  margin: 0;
}

body {
  background-color: #00d771;
  display: grid;
  align-items: center;
  justify-content: center;
}

.clock {
  background-color: #ffffff;
  width: 30vw;
  height: 30vw;
  max-width: 70vh;
  max-height: 70vh;
  border: solid 2.8vw #242424;
  position: relative;
  overflow: hidden;
  border-radius: 50%;
  box-sizing: border-box;
  box-shadow: 0 1.4vw 2.8vw rgba(0, 0, 0, 0.8);
}

.memory {
  position: absolute;
  top: 50%;
  left: 50%;
  transform-origin: center;
}
.memory:nth-child(1) {
  background-color: #424242;
  width: 2%;
  height: 8%;
  transform: translate(-50%, -50%) rotate(0deg) translateY(-520%);
}
.memory:nth-child(2) {
  background-color: #949494;
  width: 1%;
  height: 3%;
  transform: translate(-50%, -50%) rotate(6deg) translateY(-1461%);
}
.memory:nth-child(3) {
  background-color: #949494;
  width: 1%;
  height: 3%;
  transform: translate(-50%, -50%) rotate(12deg) translateY(-1461%);
}
.memory:nth-child(4) {
  background-color: #949494;
  width: 1%;
  height: 3%;
  transform: translate(-50%, -50%) rotate(18deg) translateY(-1461%);
}
.memory:nth-child(5) {
  background-color: #949494;
  width: 1%;
  height: 3%;
  transform: translate(-50%, -50%) rotate(24deg) translateY(-1461%);
}
.memory:nth-child(6) {
  background-color: #424242;
  width: 2%;
  height: 8%;
  transform: translate(-50%, -50%) rotate(30deg) translateY(-520%);
}
.memory:nth-child(7) {
  background-color: #949494;
  width: 1%;
  height: 3%;
  transform: translate(-50%, -50%) rotate(36deg) translateY(-1461%);
}
.memory:nth-child(8) {
  background-color: #949494;
  width: 1%;
  height: 3%;
  transform: translate(-50%, -50%) rotate(42deg) translateY(-1461%);
}
.memory:nth-child(9) {
  background-color: #949494;
  width: 1%;
  height: 3%;
  transform: translate(-50%, -50%) rotate(48deg) translateY(-1461%);
}
.memory:nth-child(10) {
  background-color: #949494;
  width: 1%;
  height: 3%;
  transform: translate(-50%, -50%) rotate(54deg) translateY(-1461%);
}
.memory:nth-child(11) {
  background-color: #424242;
  width: 2%;
  height: 8%;
  transform: translate(-50%, -50%) rotate(60deg) translateY(-520%);
}
.memory:nth-child(12) {
  background-color: #949494;
  width: 1%;
  height: 3%;
  transform: translate(-50%, -50%) rotate(66deg) translateY(-1461%);
}
.memory:nth-child(13) {
  background-color: #949494;
  width: 1%;
  height: 3%;
  transform: translate(-50%, -50%) rotate(72deg) translateY(-1461%);
}
.memory:nth-child(14) {
  background-color: #949494;
  width: 1%;
  height: 3%;
  transform: translate(-50%, -50%) rotate(78deg) translateY(-1461%);
}
.memory:nth-child(15) {
  background-color: #949494;
  width: 1%;
  height: 3%;
  transform: translate(-50%, -50%) rotate(84deg) translateY(-1461%);
}
.memory:nth-child(16) {
  background-color: #424242;
  width: 2%;
  height: 8%;
  transform: translate(-50%, -50%) rotate(90deg) translateY(-520%);
}
.memory:nth-child(17) {
  background-color: #949494;
  width: 1%;
  height: 3%;
  transform: translate(-50%, -50%) rotate(96deg) translateY(-1461%);
}
.memory:nth-child(18) {
  background-color: #949494;
  width: 1%;
  height: 3%;
  transform: translate(-50%, -50%) rotate(102deg) translateY(-1461%);
}
.memory:nth-child(19) {
  background-color: #949494;
  width: 1%;
  height: 3%;
  transform: translate(-50%, -50%) rotate(108deg) translateY(-1461%);
}
.memory:nth-child(20) {
  background-color: #949494;
  width: 1%;
  height: 3%;
  transform: translate(-50%, -50%) rotate(114deg) translateY(-1461%);
}
.memory:nth-child(21) {
  background-color: #424242;
  width: 2%;
  height: 8%;
  transform: translate(-50%, -50%) rotate(120deg) translateY(-520%);
}
.memory:nth-child(22) {
  background-color: #949494;
  width: 1%;
  height: 3%;
  transform: translate(-50%, -50%) rotate(126deg) translateY(-1461%);
}
.memory:nth-child(23) {
  background-color: #949494;
  width: 1%;
  height: 3%;
  transform: translate(-50%, -50%) rotate(132deg) translateY(-1461%);
}
.memory:nth-child(24) {
  background-color: #949494;
  width: 1%;
  height: 3%;
  transform: translate(-50%, -50%) rotate(138deg) translateY(-1461%);
}
.memory:nth-child(25) {
  background-color: #949494;
  width: 1%;
  height: 3%;
  transform: translate(-50%, -50%) rotate(144deg) translateY(-1461%);
}
.memory:nth-child(26) {
  background-color: #424242;
  width: 2%;
  height: 8%;
  transform: translate(-50%, -50%) rotate(150deg) translateY(-520%);
}
.memory:nth-child(27) {
  background-color: #949494;
  width: 1%;
  height: 3%;
  transform: translate(-50%, -50%) rotate(156deg) translateY(-1461%);
}
.memory:nth-child(28) {
  background-color: #949494;
  width: 1%;
  height: 3%;
  transform: translate(-50%, -50%) rotate(162deg) translateY(-1461%);
}
.memory:nth-child(29) {
  background-color: #949494;
  width: 1%;
  height: 3%;
  transform: translate(-50%, -50%) rotate(168deg) translateY(-1461%);
}
.memory:nth-child(30) {
  background-color: #949494;
  width: 1%;
  height: 3%;
  transform: translate(-50%, -50%) rotate(174deg) translateY(-1461%);
}
.memory:nth-child(31) {
  background-color: #424242;
  width: 2%;
  height: 8%;
  transform: translate(-50%, -50%) rotate(180deg) translateY(-520%);
}
.memory:nth-child(32) {
  background-color: #949494;
  width: 1%;
  height: 3%;
  transform: translate(-50%, -50%) rotate(186deg) translateY(-1461%);
}
.memory:nth-child(33) {
  background-color: #949494;
  width: 1%;
  height: 3%;
  transform: translate(-50%, -50%) rotate(192deg) translateY(-1461%);
}
.memory:nth-child(34) {
  background-color: #949494;
  width: 1%;
  height: 3%;
  transform: translate(-50%, -50%) rotate(198deg) translateY(-1461%);
}
.memory:nth-child(35) {
  background-color: #949494;
  width: 1%;
  height: 3%;
  transform: translate(-50%, -50%) rotate(204deg) translateY(-1461%);
}
.memory:nth-child(36) {
  background-color: #424242;
  width: 2%;
  height: 8%;
  transform: translate(-50%, -50%) rotate(210deg) translateY(-520%);
}
.memory:nth-child(37) {
  background-color: #949494;
  width: 1%;
  height: 3%;
  transform: translate(-50%, -50%) rotate(216deg) translateY(-1461%);
}
.memory:nth-child(38) {
  background-color: #949494;
  width: 1%;
  height: 3%;
  transform: translate(-50%, -50%) rotate(222deg) translateY(-1461%);
}
.memory:nth-child(39) {
  background-color: #949494;
  width: 1%;
  height: 3%;
  transform: translate(-50%, -50%) rotate(228deg) translateY(-1461%);
}
.memory:nth-child(40) {
  background-color: #949494;
  width: 1%;
  height: 3%;
  transform: translate(-50%, -50%) rotate(234deg) translateY(-1461%);
}
.memory:nth-child(41) {
  background-color: #424242;
  width: 2%;
  height: 8%;
  transform: translate(-50%, -50%) rotate(240deg) translateY(-520%);
}
.memory:nth-child(42) {
  background-color: #949494;
  width: 1%;
  height: 3%;
  transform: translate(-50%, -50%) rotate(246deg) translateY(-1461%);
}
.memory:nth-child(43) {
  background-color: #949494;
  width: 1%;
  height: 3%;
  transform: translate(-50%, -50%) rotate(252deg) translateY(-1461%);
}
.memory:nth-child(44) {
  background-color: #949494;
  width: 1%;
  height: 3%;
  transform: translate(-50%, -50%) rotate(258deg) translateY(-1461%);
}
.memory:nth-child(45) {
  background-color: #949494;
  width: 1%;
  height: 3%;
  transform: translate(-50%, -50%) rotate(264deg) translateY(-1461%);
}
.memory:nth-child(46) {
  background-color: #424242;
  width: 2%;
  height: 8%;
  transform: translate(-50%, -50%) rotate(270deg) translateY(-520%);
}
.memory:nth-child(47) {
  background-color: #949494;
  width: 1%;
  height: 3%;
  transform: translate(-50%, -50%) rotate(276deg) translateY(-1461%);
}
.memory:nth-child(48) {
  background-color: #949494;
  width: 1%;
  height: 3%;
  transform: translate(-50%, -50%) rotate(282deg) translateY(-1461%);
}
.memory:nth-child(49) {
  background-color: #949494;
  width: 1%;
  height: 3%;
  transform: translate(-50%, -50%) rotate(288deg) translateY(-1461%);
}
.memory:nth-child(50) {
  background-color: #949494;
  width: 1%;
  height: 3%;
  transform: translate(-50%, -50%) rotate(294deg) translateY(-1461%);
}
.memory:nth-child(51) {
  background-color: #424242;
  width: 2%;
  height: 8%;
  transform: translate(-50%, -50%) rotate(300deg) translateY(-520%);
}
.memory:nth-child(52) {
  background-color: #949494;
  width: 1%;
  height: 3%;
  transform: translate(-50%, -50%) rotate(306deg) translateY(-1461%);
}
.memory:nth-child(53) {
  background-color: #949494;
  width: 1%;
  height: 3%;
  transform: translate(-50%, -50%) rotate(312deg) translateY(-1461%);
}
.memory:nth-child(54) {
  background-color: #949494;
  width: 1%;
  height: 3%;
  transform: translate(-50%, -50%) rotate(318deg) translateY(-1461%);
}
.memory:nth-child(55) {
  background-color: #949494;
  width: 1%;
  height: 3%;
  transform: translate(-50%, -50%) rotate(324deg) translateY(-1461%);
}
.memory:nth-child(56) {
  background-color: #424242;
  width: 2%;
  height: 8%;
  transform: translate(-50%, -50%) rotate(330deg) translateY(-520%);
}
.memory:nth-child(57) {
  background-color: #949494;
  width: 1%;
  height: 3%;
  transform: translate(-50%, -50%) rotate(336deg) translateY(-1461%);
}
.memory:nth-child(58) {
  background-color: #949494;
  width: 1%;
  height: 3%;
  transform: translate(-50%, -50%) rotate(342deg) translateY(-1461%);
}
.memory:nth-child(59) {
  background-color: #949494;
  width: 1%;
  height: 3%;
  transform: translate(-50%, -50%) rotate(348deg) translateY(-1461%);
}
.memory:nth-child(60) {
  background-color: #949494;
  width: 1%;
  height: 3%;
  transform: translate(-50%, -50%) rotate(354deg) translateY(-1461%);
}

.needle {
  position: absolute;
  top: 50%;
  left: 50%;
  transform-origin: center;
}
.needle#hours {
  background-color: #1f1f1f;
  width: 4%;
  height: 30%;
  transform-origin: center 75%;
  transform: translate(-50%, -75%);
}
.needle#hours.moving {
  transition: transform 150ms ease-out;
}
.needle#hours:after {
  content: '';
  background-color: #1f1f1f;
  width: 4vw;
  height: 4vw;
  max-width: 4vh;
  max-height: 4vh;
  display: block;
  position: absolute;
  top: 75%;
  left: 50%;
  box-sizing: border-box;
  border-radius: 50%;
  transform: translate(-50%, -50%);
}
.needle#minutes {
  background-color: #1f1f1f;
  width: 2%;
  height: 45%;
  transform-origin: center 75%;
  transform: translate(-50%, -75%);
}
.needle#minutes.moving {
  transition: transform 150ms ease-out;
}
.needle#minutes:after {
  content: '';
  background-color: #1f1f1f;
  width: 4vw;
  height: 4vw;
  max-width: 4vh;
  max-height: 4vh;
  display: block;
  position: absolute;
  top: 75%;
  left: 50%;
  box-sizing: border-box;
  border-radius: 50%;
  transform: translate(-50%, -50%);
}
.needle#seconds {
  background-color: #cb2f2f;
  width: 1%;
  height: 50%;
  transform-origin: center 75%;
  transform: translate(-50%, -75%);
}
.needle#seconds.moving {
  transition: transform 150ms ease-out;
}
.needle#seconds:after {
  content: '';
  background-color: #cb2f2f;
  width: 2.5vw;
  height: 2.5vw;
  max-width: 2.5vh;
  max-height: 2.5vh;
  display: block;
  position: absolute;
  top: 75%;
  left: 50%;
  box-sizing: border-box;
  border-radius: 50%;
  transform: translate(-50%, -50%);
}

@media (min-width: 100vh) {
  .clock {
    border: solid 1.8vh #242424;
    box-shadow: 0 1.4vh 2.8vh rgba(0, 0, 0, 0.8);
  }
}